package br.com.j7.jdesk.persistence.repository;

import java.util.List;

import br.com.j7.jdesk.library.exception.RepositoryException;
import br.com.j7.jdesk.persistence.entity.Customers;
import br.com.j7.jdesk.persistence.entity.Enterprises;

/**
 * Interface de {@link Repository} para a entidade {@link Customers}
 * 
 * @author Edivando Alves
 *
 */
public interface CustomerRepository extends Repository<Customers>{
	
	/**
	 * Obtem uma entidade {@link Customers} a partir do cdCustomer e da entidade {@link Enterprises}
	 * 
	 * @param cdCustomer String
	 * @param enterprise {@link Enterprises}
	 * @return {@link Customers}
	 * @throws RepositoryException
	 */
	public Customers findByCustomerAndEnterprise(String cdCustomer, Enterprises enterprise) throws RepositoryException;
	
	/**
	 * Obtem uma {@link List} de {@link Customers} de uma determinada {@link Enterprises}
	 * 
	 * @param enterprise {@link Enterprises}
	 * @return {@link List} of {@link Customers}
	 * @throws RepositoryException
	 */
	public List<Customers> listByEnterprise(Enterprises enterprise) throws RepositoryException;
		
}
